home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / email / Iterators.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  2KB  |  71 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. '''Various types of useful iterators and generators.'''
  5. import sys
  6. from cStringIO import StringIO
  7.  
  8. def walk(self):
  9.     '''Walk over the message tree, yielding each subpart.
  10.  
  11.     The walk is performed in depth-first order.  This method is a
  12.     generator.
  13.     '''
  14.     yield self
  15.     if self.is_multipart():
  16.         for subpart in self.get_payload():
  17.             for subsubpart in subpart.walk():
  18.                 yield subsubpart
  19.             
  20.         
  21.     
  22.  
  23.  
  24. def body_line_iterator(msg, decode = False):
  25.     '''Iterate over the parts, returning string payloads line-by-line.
  26.  
  27.     Optional decode (default False) is passed through to .get_payload().
  28.     '''
  29.     for subpart in msg.walk():
  30.         payload = subpart.get_payload(decode = decode)
  31.         if isinstance(payload, basestring):
  32.             for line in StringIO(payload):
  33.                 yield line
  34.             
  35.     
  36.  
  37.  
  38. def typed_subpart_iterator(msg, maintype = 'text', subtype = None):
  39.     '''Iterate over the subparts with a given MIME type.
  40.  
  41.     Use `maintype\' as the main MIME type to match against; this defaults to
  42.     "text".  Optional `subtype\' is the MIME subtype to match against; if
  43.     omitted, only the main type is matched.
  44.     '''
  45.     for subpart in msg.walk():
  46.         if subpart.get_content_maintype() == maintype:
  47.             if subtype is None or subpart.get_content_subtype() == subtype:
  48.                 yield subpart
  49.             
  50.         subpart.get_content_subtype() == subtype
  51.     
  52.  
  53.  
  54. def _structure(msg, fp = None, level = 0, include_default = False):
  55.     '''A handy debugging aid'''
  56.     if fp is None:
  57.         fp = sys.stdout
  58.     
  59.     tab = ' ' * level * 4
  60.     print >>fp, tab + msg.get_content_type(),
  61.     if include_default:
  62.         print >>fp, '[%s]' % msg.get_default_type()
  63.     else:
  64.         print >>fp
  65.     if msg.is_multipart():
  66.         for subpart in msg.get_payload():
  67.             _structure(subpart, fp, level + 1, include_default)
  68.         
  69.     
  70.  
  71.